Re: [SQL] fields with float[48] type question - Mailing list pgsql-sql

From Stuart Rison
Subject Re: [SQL] fields with float[48] type question
Date
Msg-id v04020a00b3852c20ba9f@[128.40.242.190]
Whole thread Raw
List pgsql-sql
Hi Serguey,

I can't explain the behaviour -although I've had similar "trouble" with
AGGREGATES on floats.

I potential work-around that could to work with your example though is:

CREATE SEQUENCE test_seq INCREMENT -6 START 10000 MAXVALUE 10000 MINVALUE 0;

CREATE FUNCTION get_nextval() RETURNS float AS
'SELECT nextval(\'test_seq\')/100.0' LANGUAGE 'sql';

then...

SELECT get_nextval(); [first time]

NOTICE:  test_seq.nextval: sequence was re-created
get_nextval
-----------       100
(1 row)

SELECT get_nextval(); [22nd time]

get_nextval
-----------     98.68
(1 row)

problem is you have to multiply your starting value and the increment by
whatever it takes to 'get rid' of decimal places.  That fine if your
increment is 0.06 but if it's 0.0000001225357 it becomes rather more silly!

anyway HTH,

regards,

Stuart

>    I have two pc's with PostgreSQL 6.4.2r and 6.5beta2
>    and some troubles with both of them.
>
>    Well, here's an example:
>    I create some simple table with float field (called field_one), insert
>    value 100 in it. Then I need to increase/decrease it number by 0.06 on
>every step
>    many times (from trigger/SPI or simple shell script contains just _21_
>(or less)
>    lines like this: 'update <class_name> set field_one = field_one [-+]
>0.06')...
>    Here'we go. If I put _22+_ lines I got very interesting results. For
>example:
>    100 - 22 times by 0.06 == 98.6799999999999 instead of 98.68... And it's
>not
>    the end of story...
>
>
>        Can someone explain me such behaviour?..
+-------------------------+--------------------------------------+
| Stuart Rison            | Ludwig Institute for Cancer Research |
+-------------------------+ 91 Riding House Street               |
| Tel. (0171) 878 4041    | London, W1P 8BT, UNITED KINGDOM.     |
| Fax. (0171) 878 4040    | stuart@ludwig.ucl.ac.uk              |
+-------------------------+--------------------------------------+


pgsql-sql by date:

Previous
From: "Emils Klotins"
Date:
Subject: Re: [SQL] Select like when searching for whole word and optimizing it -- regexp?
Next
From: Remigiusz Sokolowski
Date:
Subject: DataStyle